home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
001-025
/
disk_005
/
mandelbrotsrc
/
mand6.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-06
|
20KB
|
999 lines
/*****************************************************************************
* MAND6.C - Color Window Data
* Mandelbrot Self-Squared Dragon Generator
* For the Commodore Amiga
* Version 2.01
*
* Copyright (C) 1986, =Robert J. Mical=
* Placed in the Public Domain
*
* This program may be distributed free of charge as long as the above
* notice is retained. You may extract any or all information contained
* in this file for use in your own programs
*
****************************************************************************/
#include "mand.h"
/* === The Mandelbrot program definitions ================================= */
extern int MathBase, MathTransBase;
extern struct GfxBase *GfxBase;
extern struct IntuitionBase *IntuitionBase;
extern struct RastPort *rp,*rp2;
extern struct ViewPort *vp;
extern struct Window *w,*w2, *ColorWindow;
extern struct Screen *screen;
extern struct IntuiMessage *message;
extern long last_color;
extern BOOL SettingCenter, SettingBoxSize;
extern union kludge {
float f;
int i;
} start_r,end_r,start_i,end_i; /* Block bounds for set */
extern int max_x,max_y,max_mem_y; /* Graphics window size */
extern int max_count,color_inc,color_offset,color_set,color_mode,color_div;
extern int color_inset,func_num;
extern int v_starty,max_mem;
extern long v_offset;
extern UWORD *color_table,*v_mand_store;
extern int modified,want_read;
extern FILE *console,*v_fp,*redir_fp;
extern SHORT ZoomCenterX, ZoomCenterY, ZoomBoxSizeX, ZoomBoxSizeY;
extern SHORT ZoomBoxStartX, ZoomBoxStartY;
/*****************************************************************************
*
* Color window template initialization and routines,
* for colorwindow and cyclewindow
*
* Throughout this file, the COLOR_RED and COLOR_GREEN gadgets are in the
* opposite order you would expect.
*
****************************************************************************/
struct TextAttr SafeFont =
{
"topaz.font",
TOPAZ_EIGHTY,
0,
0,
};
USHORT RGBData[] =
{
0xFC00,
0x6600,
0x6600,
0x7C00,
0x6C00,
0x6600,
0xE300,
0x0000,
0x0000,
0x0000,
0x0000,
0x3C00,
0x6600,
0xC000,
0xCE00,
0xC600,
0x6600,
0x3E00,
0x0000,
0x0000,
0x0000,
0x0000,
0xFC00,
0x6600,
0x6600,
0x7C00,
0x6600,
0x6600,
0xFC00,
};
struct Image ColorRGBImage =
{
3, 1,
8,
29,
1,
&RGBData[0],
0x1, 0x0,
NULL,
};
SHORT ClusterBorderVectors[] =
{
-1, -1,
-1, COLOR_CLUSTER_HEIGHT,
COLOR_CLUSTER_WIDTH, COLOR_CLUSTER_HEIGHT,
COLOR_CLUSTER_WIDTH, -1,
-1, -1,
};
struct Border ColorClusterBorder =
{
0, 0,
1, 0,
JAM1,
5,
&ClusterBorderVectors[0],
NULL,
};
struct IntuiText ColorClusterText[4] =
{
/* "COPY" */
{
1, 0,
JAM2,
2 + CHARACTER_WIDTH, 1,
&SafeFont,
"COPY",
NULL,
},
/* "RANGE" */
{
1, 0,
JAM2,
2 + (CHARACTER_WIDTH >> 1), 1,
&SafeFont,
"RANGE",
NULL,
},
/* "OK" */
{
1, 0,
JAM2,
2 + (CHARACTER_WIDTH << 1), 1,
&SafeFont,
"OK",
NULL,
},
/* "CANCEL" */
{
1, 0,
JAM2,
2, 1,
&SafeFont,
"CANCEL",
NULL,
},
};
/* ======================================================================== */
/* ======================================================================== */
/* ======================================================================== */
/* RJM anchor */
struct Image ColorPropsImages[3];
struct Image SuperColorImages[32];
struct PropInfo ColorPropsInfos[3] =
{
{
/* COLOR_GREEN */
AUTOKNOB | FREEHORIZ,
0,
0,
COLOR_KNOB_BODY,
0,
0, 0, 0, 0, 0, 0,
},
{
/* COLOR_RED */
AUTOKNOB | FREEHORIZ,
0,
0,
COLOR_KNOB_BODY,
0,
0, 0, 0, 0, 0, 0,
},
{
/* COLOR_BLUE */
AUTOKNOB | FREEHORIZ,
0,
0,
COLOR_KNOB_BODY,
0,
0, 0, 0, 0, 0, 0,
},
};
struct Gadget ColorTemplateGadgets[COLOR_GADGETS_COUNT] =
{
{
/* COLOR_00 */
NULL,
COLOR_BOX_LEFT + ((00 & 0x7) * 15),
COLOR_COLOR_TOP + ((00 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[00],
NULL,
NULL,
NULL,
NULL,
00,
NULL,
},
{
/* COLOR_01 */
&ColorTemplateGadgets[00],
COLOR_BOX_LEFT + ((01 & 0x7) * 15),
COLOR_COLOR_TOP + ((01 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[01],
NULL,
NULL,
NULL,
NULL,
01,
NULL,
},
{
/* COLOR_02 */
&ColorTemplateGadgets[01],
COLOR_BOX_LEFT + ((02 & 0x7) * 15),
COLOR_COLOR_TOP + ((02 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[02],
NULL,
NULL,
NULL,
NULL,
02,
NULL,
},
{
/* COLOR_03 */
&ColorTemplateGadgets[02],
COLOR_BOX_LEFT + ((03 & 0x7) * 15),
COLOR_COLOR_TOP + ((03 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[03],
NULL,
NULL,
NULL,
NULL,
03,
NULL,
},
{
/* COLOR_04 */
&ColorTemplateGadgets[03],
COLOR_BOX_LEFT + ((04 & 0x7) * 15),
COLOR_COLOR_TOP + ((04 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[04],
NULL,
NULL,
NULL,
NULL,
04,
NULL,
},
{
/* COLOR_05 */
&ColorTemplateGadgets[04],
COLOR_BOX_LEFT + ((05 & 0x7) * 15),
COLOR_COLOR_TOP + ((05 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[05],
NULL,
NULL,
NULL,
NULL,
05,
NULL,
},
{
/* COLOR_06 */
&ColorTemplateGadgets[05],
COLOR_BOX_LEFT + ((06 & 0x7) * 15),
COLOR_COLOR_TOP + ((06 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[06],
NULL,
NULL,
NULL,
NULL,
06,
NULL,
},
{
/* COLOR_07 */
&ColorTemplateGadgets[06],
COLOR_BOX_LEFT + ((07 & 0x7) * 15),
COLOR_COLOR_TOP + ((07 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[07],
NULL,
NULL,
NULL,
NULL,
07,
NULL,
},
{
/* COLOR_08 */
&ColorTemplateGadgets[07],
COLOR_BOX_LEFT + ((08 & 0x7) * 15),
COLOR_COLOR_TOP + ((08 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[08],
NULL,
NULL,
NULL,
NULL,
08,
NULL,
},
{
/* COLOR_09 */
&ColorTemplateGadgets[08],
COLOR_BOX_LEFT + ((09 & 0x7) * 15),
COLOR_COLOR_TOP + ((09 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[09],
NULL,
NULL,
NULL,
NULL,
09,
NULL,
},
{
/* COLOR_10 */
&ColorTemplateGadgets[09],
COLOR_BOX_LEFT + ((10 & 0x7) * 15),
COLOR_COLOR_TOP + ((10 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[10],
NULL,
NULL,
NULL,
NULL,
10,
NULL,
},
{
/* COLOR_11 */
&ColorTemplateGadgets[10],
COLOR_BOX_LEFT + ((11 & 0x7) * 15),
COLOR_COLOR_TOP + ((11 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[11],
NULL,
NULL,
NULL,
NULL,
11,
NULL,
},
{
/* COLOR_12 */
&ColorTemplateGadgets[11],
COLOR_BOX_LEFT + ((12 & 0x7) * 15),
COLOR_COLOR_TOP + ((12 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[12],
NULL,
NULL,
NULL,
NULL,
12,
NULL,
},
{
/* COLOR_13 */
&ColorTemplateGadgets[12],
COLOR_BOX_LEFT + ((13 & 0x7) * 15),
COLOR_COLOR_TOP + ((13 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[13],
NULL,
NULL,
NULL,
NULL,
13,
NULL,
},
{
/* COLOR_14 */
&ColorTemplateGadgets[13],
COLOR_BOX_LEFT + ((14 & 0x7) * 15),
COLOR_COLOR_TOP + ((14 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[14],
NULL,
NULL,
NULL,
NULL,
14,
NULL,
},
{
/* COLOR_15 */
&ColorTemplateGadgets[14],
COLOR_BOX_LEFT + ((15 & 0x7) * 15),
COLOR_COLOR_TOP + ((15 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[15],
NULL,
NULL,
NULL,
NULL,
15,
NULL,
},
{
/* COLOR_16 */
&ColorTemplateGadgets[15],
COLOR_BOX_LEFT + ((16 & 0x7) * 15),
COLOR_COLOR_TOP + ((16 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[16],
NULL,
NULL,
NULL,
NULL,
16,
NULL,
},
{
/* COLOR_17 */
&ColorTemplateGadgets[16],
COLOR_BOX_LEFT + ((17 & 0x7) * 15),
COLOR_COLOR_TOP + ((17 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[17],
NULL,
NULL,
NULL,
NULL,
17,
NULL,
},
{
/* COLOR_18 */
&ColorTemplateGadgets[17],
COLOR_BOX_LEFT + ((18 & 0x7) * 15),
COLOR_COLOR_TOP + ((18 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[18],
NULL,
NULL,
NULL,
NULL,
18,
NULL,
},
{
/* COLOR_19 */
&ColorTemplateGadgets[18],
COLOR_BOX_LEFT + ((19 & 0x7) * 15),
COLOR_COLOR_TOP + ((19 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[19],
NULL,
NULL,
NULL,
NULL,
19,
NULL,
},
{
/* COLOR_20 */
&ColorTemplateGadgets[19],
COLOR_BOX_LEFT + ((20 & 0x7) * 15),
COLOR_COLOR_TOP + ((20 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[20],
NULL,
NULL,
NULL,
NULL,
20,
NULL,
},
{
/* COLOR_21 */
&ColorTemplateGadgets[20],
COLOR_BOX_LEFT + ((21 & 0x7) * 15),
COLOR_COLOR_TOP + ((21 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[21],
NULL,
NULL,
NULL,
NULL,
21,
NULL,
},
{
/* COLOR_22 */
&ColorTemplateGadgets[21],
COLOR_BOX_LEFT + ((22 & 0x7) * 15),
COLOR_COLOR_TOP + ((22 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[22],
NULL,
NULL,
NULL,
NULL,
22,
NULL,
},
{
/* COLOR_23 */
&ColorTemplateGadgets[22],
COLOR_BOX_LEFT + ((23 & 0x7) * 15),
COLOR_COLOR_TOP + ((23 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[23],
NULL,
NULL,
NULL,
NULL,
23,
NULL,
},
{
/* COLOR_24 */
&ColorTemplateGadgets[23],
COLOR_BOX_LEFT + ((24 & 0x7) * 15),
COLOR_COLOR_TOP + ((24 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[24],
NULL,
NULL,
NULL,
NULL,
24,
NULL,
},
{
/* COLOR_25 */
&ColorTemplateGadgets[24],
COLOR_BOX_LEFT + ((25 & 0x7) * 15),
COLOR_COLOR_TOP + ((25 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[25],
NULL,
NULL,
NULL,
NULL,
25,
NULL,
},
{
/* COLOR_26 */
&ColorTemplateGadgets[25],
COLOR_BOX_LEFT + ((26 & 0x7) * 15),
COLOR_COLOR_TOP + ((26 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[26],
NULL,
NULL,
NULL,
NULL,
26,
NULL,
},
{
/* COLOR_27 */
&ColorTemplateGadgets[26],
COLOR_BOX_LEFT + ((27 & 0x7) * 15),
COLOR_COLOR_TOP + ((27 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[27],
NULL,
NULL,
NULL,
NULL,
27,
NULL,
},
{
/* COLOR_28 */
&ColorTemplateGadgets[27],
COLOR_BOX_LEFT + ((28 & 0x7) * 15),
COLOR_COLOR_TOP + ((28 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[28],
NULL,
NULL,
NULL,
NULL,
28,
NULL,
},
{
/* COLOR_29 */
&ColorTemplateGadgets[28],
COLOR_BOX_LEFT + ((29 & 0x7) * 15),
COLOR_COLOR_TOP + ((29 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[29],
NULL,
NULL,
NULL,
NULL,
29,
NULL,
},
{
/* COLOR_30 */
&ColorTemplateGadgets[29],
COLOR_BOX_LEFT + ((30 & 0x7) * 15),
COLOR_COLOR_TOP + ((30 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[30],
NULL,
NULL,
NULL,
NULL,
30,
NULL,
},
{
/* COLOR_31 */
&ColorTemplateGadgets[30],
COLOR_BOX_LEFT + ((31 & 0x7) * 15),
COLOR_COLOR_TOP + ((31 >> 3) * 10),
15,
10,
GADGIMAGE,
GADGIMMEDIATE,
BOOLGADGET,
(APTR)&SuperColorImages[31],
NULL,
NULL,
NULL,
NULL,
31,
NULL,
},
{
/* COLOR_COPY */
&ColorTemplateGadgets[31],
COLOR_CLUSTER_LEFT,
COLOR_CLUSTER_TOP + (00 * (COLOR_CLUSTER_HEIGHT + 3)),
COLOR_CLUSTER_WIDTH,
COLOR_CLUSTER_HEIGHT,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
(APTR)&ColorClusterBorder,
NULL,
&ColorClusterText[00],
NULL,
NULL,
COLOR_COPY,
NULL,
},
{
/* COLOR_RANGE */
&ColorTemplateGadgets[COLOR_COPY],
COLOR_CLUSTER_LEFT,
COLOR_CLUSTER_TOP + (01 * (COLOR_CLUSTER_HEIGHT + 3)),
COLOR_CLUSTER_WIDTH,
COLOR_CLUSTER_HEIGHT,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
(APTR)&ColorClusterBorder,
NULL,
&ColorClusterText[01],
NULL,
NULL,
COLOR_RANGE,
NULL,
},
{
/* COLOR_OK */
&ColorTemplateGadgets[COLOR_RANGE],
COLOR_CLUSTER_LEFT,
COLOR_CLUSTER_TOP + (02 * (COLOR_CLUSTER_HEIGHT + 3)),
COLOR_CLUSTER_WIDTH,
COLOR_CLUSTER_HEIGHT,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
(APTR)&ColorClusterBorder,
NULL,
&ColorClusterText[02],
NULL,
NULL,
COLOR_OK,
NULL,
},
{
/* COLOR_CANCEL */
&ColorTemplateGadgets[COLOR_OK],
COLOR_CLUSTER_LEFT,
COLOR_CLUSTER_TOP + (03 * (COLOR_CLUSTER_HEIGHT + 3)),
COLOR_CLUSTER_WIDTH,
COLOR_CLUSTER_HEIGHT,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
(APTR)&ColorClusterBorder,
NULL,
&ColorClusterText[03],
NULL,
NULL,
COLOR_CANCEL,
NULL,
},
{
/* COLOR_GREEN */
&ColorTemplateGadgets[COLOR_CANCEL],
COLOR_PROP_LEFT,
COLOR_PROP_TOP + (01 * (COLOR_PROP_HEIGHT + 1)),
COLOR_PROP_WIDTH,
COLOR_PROP_HEIGHT,
GADGHCOMP | GADGIMAGE,
FOLLOWMOUSE,
PROPGADGET,
(APTR)&ColorPropsImages[01],
NULL,
NULL,
NULL,
(APTR)&ColorPropsInfos[01],
COLOR_GREEN,
NULL,
},
{
/* COLOR_RED */
&ColorTemplateGadgets[COLOR_GREEN],
COLOR_PROP_LEFT,
COLOR_PROP_TOP + (00 * (COLOR_PROP_HEIGHT + 1)),
COLOR_PROP_WIDTH,
COLOR_PROP_HEIGHT,
GADGHCOMP | GADGIMAGE,
FOLLOWMOUSE,
PROPGADGET,
(APTR)&ColorPropsImages[00],
NULL,
NULL,
NULL,
(APTR)&ColorPropsInfos[00],
COLOR_RED,
NULL,
},
{
/* COLOR_BLUE */
&ColorTemplateGadgets[COLOR_RED],
COLOR_PROP_LEFT,
COLOR_PROP_TOP + (02 * (COLOR_PROP_HEIGHT + 1)),
COLOR_PROP_WIDTH,
COLOR_PROP_HEIGHT,
GADGHCOMP | GADGIMAGE,
FOLLOWMOUSE,
PROPGADGET,
(APTR)&ColorPropsImages[02],
NULL,
NULL,
NULL,
(APTR)&ColorPropsInfos[02],
COLOR_BLUE,
NULL,
},
{
/* COLOR_HSL_RGB */
&ColorTemplateGadgets[COLOR_BLUE],
COLOR_HSL_LEFT,
COLOR_HSL_TOP,
CHARACTER_WIDTH + 5,
COLOR_BOX_BOTTOM - COLOR_BOX_TOP + 1,
GADGHIMAGE | GADGIMAGE | SELECTED,
TOGGLESELECT,
BOOLGADGET,
(APTR)&ColorRGBImage,
(APTR)&ColorRGBImage,
NULL,
NULL,
NULL,
COLOR_HSL_RGB,
NULL,
},
};